/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ibm.law.domain;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlRootElement;

/**
 * 
 * @author shanch
 */
@Entity
@Table(name = "charge_item")
@XmlRootElement
@NamedQueries({
		@NamedQuery(name = "ChargeItem.findAll", query = "SELECT c FROM ChargeItem c"),
		@NamedQuery(name = "ChargeItem.findById", query = "SELECT c FROM ChargeItem c WHERE c.id = :id"),
		@NamedQuery(name = "ChargeItem.findByName", query = "SELECT c FROM ChargeItem c WHERE c.name = :name"),
		@NamedQuery(name = "ChargeItem.findByUnit", query = "SELECT c FROM ChargeItem c WHERE c.unit = :unit"),
		@NamedQuery(name = "ChargeItem.findByBaseFee", query = "SELECT c FROM ChargeItem c WHERE c.baseFee = :baseFee"),
		@NamedQuery(name = "ChargeItem.findByStandardFee", query = "SELECT c FROM ChargeItem c WHERE c.standardFee = :standardFee"),
		@NamedQuery(name = "ChargeItem.findByAppraiser1Fee", query = "SELECT c FROM ChargeItem c WHERE c.appraiser1Fee = :appraiser1Fee"),
		@NamedQuery(name = "ChargeItem.findByAppraiser2Fee", query = "SELECT c FROM ChargeItem c WHERE c.appraiser2Fee = :appraiser2Fee"),
		@NamedQuery(name = "ChargeItem.findByAppraiser3Fee", query = "SELECT c FROM ChargeItem c WHERE c.appraiser3Fee = :appraiser3Fee"),
		@NamedQuery(name = "ChargeItem.findByAppraiser1Type", query = "SELECT c FROM ChargeItem c WHERE c.appraiser1Type = :appraiser1Type"),
		@NamedQuery(name = "ChargeItem.findByAppraiser2Type", query = "SELECT c FROM ChargeItem c WHERE c.appraiser2Type = :appraiser2Type"),
		@NamedQuery(name = "ChargeItem.findByAppraiser3Type", query = "SELECT c FROM ChargeItem c WHERE c.appraiser3Type = :appraiser3Type"),
		@NamedQuery(name = "ChargeItem.findByReviwerFee", query = "SELECT c FROM ChargeItem c WHERE c.reviwerFee = :reviwerFee"),
		@NamedQuery(name = "ChargeItem.findBySignerFee", query = "SELECT c FROM ChargeItem c WHERE c.signerFee = :signerFee"),
		@NamedQuery(name = "ChargeItem.findByAssistantFee", query = "SELECT c FROM ChargeItem c WHERE c.assistantFee = :assistantFee"),
		@NamedQuery(name = "ChargeItem.findByEditorFee", query = "SELECT c FROM ChargeItem c WHERE c.editorFee = :editorFee"),
		@NamedQuery(name = "ChargeItem.findByReviwerType", query = "SELECT c FROM ChargeItem c WHERE c.reviwerType = :reviwerType"),
		@NamedQuery(name = "ChargeItem.findBySignerType", query = "SELECT c FROM ChargeItem c WHERE c.signerType = :signerType"),
		@NamedQuery(name = "ChargeItem.findByAssistantType", query = "SELECT c FROM ChargeItem c WHERE c.assistantType = :assistantType"),
		@NamedQuery(name = "ChargeItem.findByEditorType", query = "SELECT c FROM ChargeItem c WHERE c.editorType = :editorType") })
public class ChargeItem implements Serializable {
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Basic(optional = false)
	@Column(name = "id")
	private Long id;
	@Column(name = "name")
	private String name;
	@Column(name = "unit")
	private String unit;
	@Column(name = "base_fee")
	private String baseFee;
	@Column(name = "standard_fee")
	private String standardFee;
	@Column(name = "appraiser1_fee")
	private String appraiser1Fee;
	@Column(name = "appraiser2_fee")
	private String appraiser2Fee;
	@Column(name = "appraiser3_fee")
	private String appraiser3Fee;
	@Column(name = "appraiser1_type")
	private String appraiser1Type;
	@Column(name = "appraiser2_type")
	private String appraiser2Type;
	@Column(name = "appraiser3_type")
	private String appraiser3Type;
	@Column(name = "reviwer_fee")
	private String reviwerFee;
	@Column(name = "signer_fee")
	private String signerFee;
	@Column(name = "assistant_fee")
	private String assistantFee;
	@Column(name = "editor_fee")
	private String editorFee;
	@Column(name = "reviwer_type")
	private String reviwerType;
	@Column(name = "signer_type")
	private String signerType;
	@Column(name = "assistant_type")
	private String assistantType;
	@Column(name = "editor_type")
	private String editorType;
	@ManyToOne
	@JoinColumn(name = "category_id")
	private Category category;
	@Column(name = "comment")
	private String comment;
	
	public String getComment() {
		return comment;
	}

	public void setComment(String comment) {
		this.comment = comment;
	}

	public Category getCategory() {
		return category;
	}

	public void setCategory(Category category) {
		this.category = category;
	}

	public ChargeItem() {
	}

	public ChargeItem(Long id) {
		this.id = id;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getUnit() {
		return unit;
	}

	public void setUnit(String unit) {
		this.unit = unit;
	}

	public String getBaseFee() {
		return baseFee;
	}

	public void setBaseFee(String baseFee) {
		this.baseFee = baseFee;
	}

	public String getStandardFee() {
		return standardFee;
	}

	public void setStandardFee(String standardFee) {
		this.standardFee = standardFee;
	}

	public String getAppraiser1Fee() {
		return appraiser1Fee;
	}

	public void setAppraiser1Fee(String appraiser1Fee) {
		this.appraiser1Fee = appraiser1Fee;
	}

	public String getAppraiser2Fee() {
		return appraiser2Fee;
	}

	public void setAppraiser2Fee(String appraiser2Fee) {
		this.appraiser2Fee = appraiser2Fee;
	}

	public String getAppraiser3Fee() {
		return appraiser3Fee;
	}

	public void setAppraiser3Fee(String appraiser3Fee) {
		this.appraiser3Fee = appraiser3Fee;
	}

	public String getAppraiser1Type() {
		return appraiser1Type;
	}

	public void setAppraiser1Type(String appraiser1Type) {
		this.appraiser1Type = appraiser1Type;
	}

	public String getAppraiser2Type() {
		return appraiser2Type;
	}

	public void setAppraiser2Type(String appraiser2Type) {
		this.appraiser2Type = appraiser2Type;
	}

	public String getAppraiser3Type() {
		return appraiser3Type;
	}

	public void setAppraiser3Type(String appraiser3Type) {
		this.appraiser3Type = appraiser3Type;
	}

	public String getReviwerFee() {
		return reviwerFee;
	}

	public void setReviwerFee(String reviwerFee) {
		this.reviwerFee = reviwerFee;
	}

	public String getSignerFee() {
		return signerFee;
	}

	public void setSignerFee(String signerFee) {
		this.signerFee = signerFee;
	}

	public String getAssistantFee() {
		return assistantFee;
	}

	public void setAssistantFee(String assistantFee) {
		this.assistantFee = assistantFee;
	}

	public String getEditorFee() {
		return editorFee;
	}

	public void setEditorFee(String editorFee) {
		this.editorFee = editorFee;
	}

	public String getReviwerType() {
		return reviwerType;
	}

	public void setReviwerType(String reviwerType) {
		this.reviwerType = reviwerType;
	}

	public String getSignerType() {
		return signerType;
	}

	public void setSignerType(String signerType) {
		this.signerType = signerType;
	}

	public String getAssistantType() {
		return assistantType;
	}

	public void setAssistantType(String assistantType) {
		this.assistantType = assistantType;
	}

	public String getEditorType() {
		return editorType;
	}

	public void setEditorType(String editorType) {
		this.editorType = editorType;
	}

	@Override
	public int hashCode() {
		int hash = 0;
		hash += (id != null ? id.hashCode() : 0);
		return hash;
	}

	@Override
	public boolean equals(Object object) {
		// TODO: Warning - this method won't work in the case the id fields are
		// not set
		if (!(object instanceof ChargeItem)) {
			return false;
		}
		ChargeItem other = (ChargeItem) object;
		if ((this.id == null && other.id != null)
				|| (this.id != null && !this.id.equals(other.id))) {
			return false;
		}
		return true;
	}

	@Override
	public String toString() {
		return "com.ibm.law.entity.ChargeItem[ id=" + id + " ]";
	}

}
